Dialog systems have evolved to become very complex and can be composed of large numbers of components (both hardware and software) which have to interact and work together correctly to bring about the result desired by the user. Due to the complexity of the system involved, it is vital that extensive testing be carried out before the deployment of the dialog system for use by customers and to verify the performance and correctness of the dialog. After the dialog system has been deployed and used by the customers, it is still important to monitor its performance and correctness to optimize the system's use of resources and to monitor the complex interactions between the different components of the system, as well as to evaluate the current callflow effectiveness and correctness
Modeling of the dialog system is a vital part of pre-deployment testing as well as of providing subsequent performance improvements, physical improvements and user interface improvements, e.g., improvements to the dialog itself. However, the analysis of the dialog system can be exceedingly difficult because of the very large number of transactions with the users that take place during a given period of time, and because of the complexity of the steps that may be performed by the many components for each transaction. One type of system which has gained popularity is a natural language dialog system, in which the users can speak in natural language and be understood by the dialog system. In the spoken dialog system, large numbers of specific dialogs travel from root nodes to leaf nodes of the dialog system. Each dialog represents a call or an exchange of data, communication or information between customers and the system.
One way of analyzing the dialog system is to use reports. However, the reports are generally prepared in response to defined requirements and to analyze and resolve a specific problem. Thus, the reports are not well suited to uncover more general problems within the dialog system, and to review the operation of the dialog system as a whole. Call flows, also known as sequence diagrams, are more useful to analyze dialog systems because they allow the developer to visually depict the messages and interactions which take place between the dialog system's components and the users, and the associated state transitions between the components. Call flows are well suited to represent and model the flow of messages, events and actions which takes place between the components of a complex system and a user. Call flows may be used to design, document and validate the architecture and logic of a system by describing the sequence of actions needed to carry out a task.